﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;

using Entity = VietStar.Library.Entity;
using Business = VietStar.Library.Business;
using Common = VietStar.Library.Commom.Algorithm;
public partial class controls_admin_addbanner : System.Web.UI.UserControl
{
    Entity.ViTriBanner entityViTriBanner = new Entity.ViTriBanner();
    Business.ViTriBanner businessViTriBanner = new Business.ViTriBanner();
    DataTable dsViTriBanner = new DataTable();

    Entity.Banner entityBanner = new Entity.Banner();
    Business.Banner businessBanner = new Business.Banner();
    DataTable dsBanner = new DataTable();

    private static string location;
    private static string action;
    private static int info;

    //Biến kiểm tra giá trị ngày đăng có thay đổi hay không
    private static string ngayDang;
    //Biến kiểm tra giá trị file name upload có thay đổi hay không
    private static string fileName;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Convert.ToInt32(Session["role_login_admin"].ToString()) != 1 && Convert.ToInt32(Session["role_login_admin"].ToString()) != 2)
        {
            Response.Redirect("listnews.aspx");
        }
        else
        {
            if (!IsPostBack)
            {
                LoadDllViTriBannerQuangCao();
                msg_warning.Visible = false;
                location = Request.QueryString["location"].ToString();
                action = Request.QueryString["action"].ToString();
                info = Convert.ToInt32(Request.QueryString["info"].ToString());
                //Nếu là hành động thêm, xóa, sửa vị trí đặt banner
                if (location == "yes")
                {
                    ViTriBanner.Visible = true;
                    Banner.Visible = false;
                    // nếu là hành động sửa
                    if (action == "edit")
                    {
                        entityViTriBanner.Id = info;
                        DataTable dt = businessViTriBanner.SelectPrimaryKey(entityViTriBanner);
                        txtTenViTriBannerQuangCao.Text = dt.Rows[0]["TenViTri"].ToString();
                        cbTrangThai.Checked = Convert.ToBoolean(dt.Rows[0]["TrangThai"].ToString());
                    }
                }
                else // Ngược lại hành động thêm xóa sửa banner
                {
                    ViTriBanner.Visible = false;
                    Banner.Visible = true;
                    //Nếu là hành động sửa
                    if (action == "edit")
                    {
                        entityBanner.Id = info;
                        DataTable dtBanner = businessBanner.SelectPrimaryKey(entityBanner);
                        txtTenBannerQuangCao.Text = dtBanner.Rows[0]["Ten"].ToString();
                        datepicker.Text = dtBanner.Rows[0]["Ngaydang"].ToString();
                        ddlViTriDatBanner.SelectedValue = dtBanner.Rows[0]["ViTri"].ToString();
                        txtLinkLienKet.Text = dtBanner.Rows[0]["LienKet"].ToString();
                        cbTrangThaiBanner.Checked = Convert.ToBoolean(dtBanner.Rows[0]["TrangThai"].ToString());
                        //Gán giá trị cho biến kiểm tra ngày đăng
                        ngayDang = dtBanner.Rows[0]["Ngaydang"].ToString();
                        //Gán giá trị cho biến kiểm tra sự thay đổi file upload
                        fileName = dtBanner.Rows[0]["HinhAnh"].ToString();
                    }
                }
            }
        }
    }
    //Load ddl vị trí đặt quảng cáo
    protected void LoadDllViTriBannerQuangCao()
    {
        try
        {
            DataTable dt = businessViTriBanner.Select();
            if (dt.Rows.Count > 0)
            {
                ddlViTriDatBanner.DataSource = dt;
                ddlViTriDatBanner.DataTextField = "TenViTri";
                ddlViTriDatBanner.DataValueField = "Id";
            }
            else
            {
                ddlViTriDatBanner.DataSource = null;
            }
            ddlViTriDatBanner.DataBind();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    protected void btnLuuViTriBannerQuangCao_Click(object sender, EventArgs e)
    {
        try
        {            
            bool save = false;
            //Nếu là hành động sửa
            if (action == "edit")
            {
                if (txtTenViTriBannerQuangCao.Text == "")
                {
                    Alert.Show("Tên vị trí banner - quảng cáo không được bỏ trống!");
                }
                else
                {
                    entityViTriBanner.Id = info;
                    entityViTriBanner.TenViTri = txtTenViTriBannerQuangCao.Text;
                    entityViTriBanner.TrangThai = cbTrangThai.Checked;
                    save = businessViTriBanner.Update(entityViTriBanner);
                    if (save == true)
                    {
                        Alert.Show("Cập nhật thông tin thành công!");
                    }
                    else
                    {
                        Alert.Show("Cập nhật thông tin không thành công!");
                    }
                }
            }
            //Nếu là hành động thêm mới
            if (action == "add")
            {
                entityViTriBanner.TenViTri = txtTenViTriBannerQuangCao.Text;
                entityViTriBanner.TrangThai = cbTrangThai.Checked;
                save = businessViTriBanner.Insert(entityViTriBanner);
                if (save == true)
                {
                    Alert.Show("Thêm thành vị trí banner - quảng cáo thành công!");
                    txtTenViTriBannerQuangCao.Text = "";
                }
                else
                {
                    Alert.Show("Thêm vị trí banner - quảng cáo không thành công!");
                }
            }            
        }
        catch(Exception ex)
        {
            throw ex;
        }
    }
    protected void btnQuayLai_Click(object sender, EventArgs e)
    {
        try
        {
            Response.Redirect("~/admin/listbanner.aspx");
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    
    protected void btnLuuBannerQuangCao_Click(object sender, EventArgs e)
    {
        try
        {
            bool save = false;
            //Nếu là hành động sửa
            if (action == "edit")
            {
                if (txtTenBannerQuangCao.Text == "")
                {
                    Alert.Show("Tên banner - quảng cáo không được bỏ trống!");
                }                
                else
                {
                    Common.RandomString randomString = new Common.RandomString();
                    string str = randomString.GenerateRandomString();
                    entityBanner.Id = info;
                    entityBanner.Ten = txtTenBannerQuangCao.Text;
                    entityBanner.ViTri = Convert.ToInt32(ddlViTriDatBanner.SelectedValue.ToString());
                    if (datepicker.Text != ngayDang)
                    {
                        entityBanner.NgayDang = Convert.ToDateTime(datepicker.Text);
                    }
                    else
                    {
                        entityBanner.NgayDang = Convert.ToDateTime(ngayDang);
                    }
                    if ( fuTaiTaiTin.FileName.ToString() !="" && (fuTaiTaiTin.FileName.ToString() != fileName))
                    {                        
                        entityBanner.HinhAnh = str + fuTaiTaiTin.FileName;
                    }
                    else
                    {
                        entityBanner.HinhAnh = fileName;
                    }
                    entityBanner.LienKet = txtLinkLienKet.Text;
                    entityBanner.TrangThai = cbTrangThaiBanner.Checked;
                    save = businessBanner.Update(entityBanner);
                    if (save == true)
                    {
                        if (fuTaiTaiTin.FileName.ToString() != "" && (fuTaiTaiTin.FileName.ToString() != fileName))
                        {
                            File.Delete(Server.MapPath("~/images/bannerquangcao/" + fileName));
                            fuTaiTaiTin.SaveAs(Server.MapPath("~/images/bannerquangcao/" + str + fuTaiTaiTin.FileName));
                        }
                        Alert.Show("Cập nhật thông tin thành công!");
                    }
                    else
                    {
                        Alert.Show("Cập nhật thông tin không thành công!");
                    }

                }
            }
            else // Nếu là hành động thêm
            {                
                if (txtTenBannerQuangCao.Text == "")
                {
                    Alert.Show("Tên banner - quảng cáo không được bỏ trống!");
                    txtTenBannerQuangCao.Focus();
                }
                else if (fuTaiTaiTin.FileName=="")
                {
                    Alert.Show("Bạn chưa chọn hình ảnh cho banner - quảng cáo!");
                }
                else
                {
                    entityBanner.ViTri = Convert.ToInt32(ddlViTriDatBanner.SelectedValue.ToString());
                    entityBanner.NguoiDang = Session["user_login_admin"].ToString();
                    entityBanner.Ten = txtTenBannerQuangCao.Text;
                    entityBanner.LienKet = txtLinkLienKet.Text;
                    entityBanner.TrangThai = Convert.ToBoolean(cbTrangThai.Checked);
                    Common.RandomString randomString = new Common.RandomString();
                    string str = randomString.GenerateRandomString();
                    entityBanner.HinhAnh = str + fuTaiTaiTin.FileName;
                    entityBanner.NgayDang = Convert.ToDateTime(datepicker.Text);
                    
                    entityBanner.TrangThai = cbTrangThaiBanner.Checked;
                    save = businessBanner.Insert(entityBanner);
                    if (save == true)
                    {
                        fuTaiTaiTin.SaveAs(Server.MapPath("~/images/bannerquangcao/" + str + fuTaiTaiTin.FileName));
                        Alert.Show("Thêm banner - quảng cáo mới thành công!");
                    }
                    else
                    {
                        Alert.Show("Thêm banner - quảng cáo mới không thành công!");
                    }                    
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
}
